﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PUCP.SI2.SGIRP.BC;
using PUCP.SI2.SGIRP.BE;

namespace PUCP.SI2.SGIRP.GUI
{
    public partial class LocalMenuForm : Form
    {
        public int selectedIndex = -1;
        LocalBC gLocal = new LocalBC();
        List<LocalBE> listalocal = new List<LocalBE>();
        LocalBE selectedLocal = null;

        public LocalMenuForm()
        {
            InitializeComponent();
            //gLocal.getAllCentrosComerciales();
            //gLocal.getAllLocales();

            //centro comercial codigo tipo estado
            tableLocales.RowCount = 10;
            tableLocales.ColumnCount = 4;
            /*

            for (int i = 0; i < 10; i++)
            {
                tableLocales.Rows.Add();
                
                    
            }
             
             


            

         

            for(int j =  0; j < 10 ; j++){
                tableLocales.Rows[j].Cells[0].Value="Real Plaza Parque Civico" ;
                tableLocales.Rows[j].Cells[1].Value = "L-"+(100+j);
                tableLocales.Rows[j].Cells[2].Value = "Intermedia";
                tableLocales.Rows[j].Cells[3].Value = "Habilitado";

            }*/

            //refreshTable(gLocal.LocalL);

            List<CentroComercialBE> listaC = LocalBC.getAllCC();

            for (int i = 0; i < listaC.Count; i++) {

                cbCC.Items.Add(listaC[i].Nombre);
            }
         
            List<TipoLocalBE>lista = LocalBC.getAllTipos();

            for (int i = 0; i < lista.Count; i++) {

                ccTipo.Items.Add(lista[i].Descripcion);
            
            }

    

        //    refreshTable();

                
        }

        private void WindowsLocal_Load(object sender, EventArgs e)
        {

        }

        public void refreshTable() {
            tableLocales.Rows.Clear();

           // listalocal = LocalBC.getAllLocales();

            for (int i = 0; i < listalocal.Count; i++) {

                tableLocales.Rows.Add(LocalBC.searchCentroComercial(listalocal[i].CodigoCC).Nombre, listalocal[i].CodigoLocal, listalocal[i].Tipo.Descripcion, listalocal[i].EstadoLocal);
            
            }


            tableLocales.AutoResizeRows();
            tableLocales.AutoResizeColumns();
            
        
        }



        private void Agregar_Click(object sender, EventArgs e)
        {
          
        }

        private void button1_Click(object sender, EventArgs e)
        {

        }

        private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }

        private void tsbAgregar_Click(object sender, EventArgs e)
        {
            new NuevoLocalForm(1,this,null).Show();
        }

        private void tsbEditar_Click(object sender, EventArgs e)
        {
            //new EditarLocalForm(this,selectedIndex).Show();

         if (selectedLocal != null)
            new NuevoLocalForm(2, this, selectedLocal).Show();
        }

        private void tsbMostrar_Click(object sender, EventArgs e)
        {
            //new MostrarLocalForm(selectedIndex).Show();
          if (selectedLocal != null)
            new NuevoLocalForm(3, this, selectedLocal).Show();
        }

        private void tsbEliminar_Click(object sender, EventArgs e)
        {
            if (selectedLocal != null)
            {

                String codigo = selectedLocal.CodigoLocal;
                DialogResult result = MessageBox.Show("¿Desea Deshabilitar el Local con Código : " + codigo, "Confirmar Deshabilitar", MessageBoxButtons.YesNoCancel);


                if (result == DialogResult.Yes)
                {

                    LocalBC.disable(selectedLocal.Codigo);
                    MessageBox.Show("Cambios Realizados Satisfactoriamente");
                }

            }


        }

        private void tableLocales_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            //String id = (String)tableLocales.Rows[e.RowIndex].Cells[1].Value;

            //selectedIndex = GestorLocal.buscarLocal(id); 


            int rowIndex = e.RowIndex;

            if (rowIndex >= 0 && rowIndex < listalocal.Count)
            {

                selectedLocal = listalocal[rowIndex];

            }
            else 
            {

                selectedLocal = null;
            }
            
 
        }

        private void Buscar_Click(object sender, EventArgs e)
        {
            //List<LocalBE> lista = GestorLocal.buscarLocales(ccEstado.Text, cbCC.Text, ccTipo.Text, codigo.Text);
           
            //    refreshTable(lista);

            //    cbCC.Text = "todos";
            //    ccEstado.Text = "todos";
            //    ccTipo.Text = "todos";
            //    codigo.Text = "todos";

            int codCC = (cbCC.Text == "todos") ? -1 : LocalBC.Listacentro[cbCC.SelectedIndex].Codigo;
            //MessageBox.Show("codigo = " + codCC);

            int codEstado = (ccEstado.Text == "todos") ? -1 : (1 + ccEstado.SelectedIndex) % 2;
            int codTipo = (ccTipo.Text == "todos")? -1 : LocalBC.Listatipo[ccTipo.SelectedIndex].Codigo;

            listalocal = LocalBC.filtrar_locales(codigo.Text, codCC, codTipo, codEstado);
            refreshTable();

            refreshFields();

        }

        public void refreshFields() {
                cbCC.Text = "todos";
                ccEstado.Text = "todos";
                ccTipo.Text = "todos";
                codigo.Text = "todos";
        
        }

        private void tableLocales_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

       

       
    }
}
